<!DOCTYPE html><html><head>
      <title>01.DM安装与卸载</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      <link rel="stylesheet" href="file:///c:\Users\Jyxt\.vscode\extensions\shd101wyy.markdown-preview-enhanced-0.8.18\crossnote\dependencies\katex\katex.min.css">
      
      
      
      
      
      <style>
      @font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW9.ttf) format('truetype')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/sourcesanspro/v22/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf) format('truetype')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/sourcesanspro/v22/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf) format('truetype')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/sourcesanspro/v22/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf) format('truetype')}*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}.markdown-preview code{border-radius:2px;color:#e96900;font-size:12.8px;font-size:.8rem;margin:0 2px;padding:3px 5px;white-space:pre-wrap}.markdown-preview code,.markdown-preview pre{background-color:#f8f8f8;font-family:Roboto Mono,Monaco,courier,monospace}.markdown-preview pre{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;line-height:24px;line-height:1.5rem;margin:1.2em 0;overflow:auto;padding:0 22.4px;padding:0 1.4rem;position:relative;word-wrap:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e908c}.token.namespace{opacity:.7}.token.boolean,.token.number{color:#c76b29}.token.punctuation{color:#525252}.token.property{color:#c08b30}.token.tag{color:#2973b7}.token.string{color:#42b983;color:var(--theme-color,#42b983)}.token.selector{color:#6679cc}.token.attr-name{color:#2973b7}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.unit{color:#42b983;color:var(--theme-color,#42b983)}.token.keyword{color:#e96900}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}.markdown-preview pre>code,.markdown-preview pre[class*=language]{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;background-color:#f8f8f8;border-radius:2px;color:#525252;display:block;font-family:Roboto Mono,Monaco,courier,monospace;font-size:12.8px;font-size:.8rem;line-height:2em;max-width:inherit;overflow:inherit;padding:.8em 1.4em;white-space:pre}.markdown-preview pre>code{padding-left:0;padding-right:0}.markdown-preview code:after,.markdown-preview code:before{letter-spacing:.8px;letter-spacing:.05rem}code .token{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;min-height:24px;min-height:1.5rem}pre:after{color:#ccc;content:attr(data-lang);font-size:9.6px;font-size:.6rem;font-weight:600;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0}pre[data-line]{position:relative;padding:1em 0 1em 3em!important}pre[data-line] .line-highlight-wrapper{position:absolute;top:0;left:0;background-color:transparent;display:block;width:100%}pre[data-line] .line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:hsla(24,20%,50%,.08);background:linear-gradient(to right,hsla(24,20%,50%,.1) 70%,hsla(24,20%,50%,0));pointer-events:none;line-height:inherit;white-space:pre}pre[data-line] .line-highlight:before,pre[data-line] .line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:hsla(24,20%,50%,.4);color:#f4f1ef;font:bold 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}pre[data-line] .line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW9.ttf) format('truetype')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:300;src:url(https://fonts.gstatic.com/s/sourcesanspro/v22/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdr.ttf) format('truetype')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/sourcesanspro/v22/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7g.ttf) format('truetype')}@font-face{font-family:'Source Sans Pro';font-style:normal;font-weight:600;src:url(https://fonts.gstatic.com/s/sourcesanspro/v22/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdr.ttf) format('truetype')}*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:'Loading...'}.emoji{height:19.2px;height:1.2rem;vertical-align:middle}.progress{background-color:#42b983;background-color:var(--theme-color,#42b983);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:5}.search .search-keyword,.search a:hover{color:#42b983;color:var(--theme-color,#42b983)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#34495e;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{color:#34495e;border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}.task-list-item{list-style-type:none}li input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.app-nav{left:0;margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:2}.app-nav p{margin:0}.app-nav>a{margin:0 16px;margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#42b983;color:var(--theme-color,#42b983)}.app-nav a.active{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983)}.app-nav li{display:inline-block;margin:0 16px;margin:0 1rem;padding:5px 0;position:relative}.app-nav li ul{background-color:#fff;border:1px solid #ddd;border-bottom-color:#ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:scroll;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:16px;line-height:1rem;margin:0;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.app-nav.no-badge{margin-right:25px}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner svg{color:#fff;fill:#42b983;fill:var(--theme-color,#42b983);height:80px;width:80px}.github-corner:hover .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}main{display:block;position:relative;width:100vw;height:100%;z-index:0}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#34495e}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;top:0;bottom:0;left:0;position:absolute;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out;width:300px;z-index:3}.sidebar>h1{margin:0 auto 16px;margin:0 auto 1rem;font-size:24px;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar ul{margin:0;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:0 0;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:0;padding:10px;bottom:0;left:0;position:absolute;text-align:center;transition:opacity .3s;width:30px;width:284px;z-index:4}.sidebar-toggle .sidebar-toggle-button:hover{opacity:.4}.sidebar-toggle span{background-color:#42b983;background-color:var(--theme-color,#42b983);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;top:0;right:0;bottom:0;left:300px;position:absolute;transition:left .25s ease}.markdown-preview>*{box-sizing:border-box;font-size:inherit}.markdown-preview>:first-child{margin-top:0!important}.markdown-preview hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-preview table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-bottom:1rem;overflow:auto;width:100%}.markdown-preview th{font-weight:700}.markdown-preview td,.markdown-preview th{border:1px solid #ddd;padding:6px 13px}.markdown-preview tr{border-top:1px solid #ccc}.markdown-preview p.tip,.markdown-preview tr:nth-child(2n){background-color:#f8f8f8}.markdown-preview p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-preview p.tip code{background-color:#efefef}.markdown-preview p.tip em{color:#34495e}.markdown-preview p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:'!';font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;width:20px;height:20px;text-align:center;top:14px}.markdown-preview p.warn{background:rgba(66,185,131,.1);border-radius:2px;padding:16px;padding:1rem}body.close .sidebar{-webkit-transform:translateX(-300px);transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;overflow-x:hidden}.sidebar{left:-300px;transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:-webkit-transform .25s ease;transition:transform .25s ease;transition:transform .25s ease,-webkit-transform .25s ease}.app-nav,.github-corner{transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{-webkit-transform:translateX(300px);transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner .octo-arm{-webkit-animation:a .56s ease-in-out;animation:a .56s ease-in-out}.github-corner:hover .octo-arm{-webkit-animation:none;animation:none}}@-webkit-keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes a{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}section.cover{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;height:100vh;display:none}section.cover .cover-main{-webkit-box-flex:1;-ms-flex:1;flex:1;margin:-20px 16px 0;text-align:center;z-index:1}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:24px;line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:40px;font-size:2.5rem;font-weight:300;margin:10px 0 40px;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-7px;bottom:-.4375rem;font-size:16px;font-size:1rem;position:absolute}section.cover blockquote{font-size:24px;font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-color:#42b983;border:1px solid var(--theme-color,#42b983);border-radius:2rem;box-sizing:border-box;color:#42b983;color:var(--theme-color,#42b983);display:inline-block;font-size:16.8px;font-size:1.05rem;letter-spacing:1.6px;letter-spacing:.1rem;margin-right:16px;margin-right:1rem;padding:.75em 32px;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#42b983;background-color:var(--theme-color,#42b983);color:#fff;margin-right:0}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983);transition:color .3s}section.cover blockquote>p>a:hover{color:#42b983;color:var(--theme-color,#42b983)}section.cover.show{display:-webkit-box;display:-ms-flexbox;display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;width:100%;height:100%}.sidebar,body{background-color:#fff}.sidebar{color:#364149}.sidebar li{margin:6px 0 6px 15px}.sidebar ul li a{color:#505d6b;font-size:14px;font-weight:400;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li ul{padding:0}.sidebar ul li.active>a{border-right:2px solid;color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.app-sub-sidebar li:before{content:'-';padding-right:4px;float:left}.markdown-preview{background-color:#fff}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4,.markdown-preview strong{color:#2c3e50;font-weight:600}.markdown-preview a{color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.md-sidebar-toc a{color:#42b983;font-weight:600}.markdown-preview h1{font-size:32px;font-size:2rem;margin:0 0 16px;margin:0 0 1rem}.markdown-preview h2{font-size:28px;font-size:1.75rem;margin:45px 0 12.8px;margin:45px 0 .8rem}.markdown-preview h3{font-size:24px;font-size:1.5rem;margin:40px 0 9.6px;margin:40px 0 .6rem}.markdown-preview h4{font-size:20px;font-size:1.25rem}.markdown-preview h5,.markdown-preview h6{font-size:16px;font-size:1rem}.markdown-preview h6{color:#777}.markdown-preview figure,.markdown-preview p{margin:1.2em 0}.markdown-preview ol,.markdown-preview p,.markdown-preview ul{line-height:25.6px;line-height:1.6rem;word-spacing:.8px;word-spacing:.05rem}.markdown-preview ol,.markdown-preview ul{padding-left:24px;padding-left:1.5rem}.markdown-preview blockquote{border-left:4px solid #42b983;border-left:4px solid var(--theme-color,#42b983);color:#858585;background-color:#f0f0f0;margin:2em 0;padding-left:20px}.markdown-preview blockquote p{font-weight:600;margin-left:0}.markdown-preview iframe{margin:1em 0}.markdown-preview em{color:#7f8c8d}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview ul{list-style:disc}.markdown-preview ul ul{list-style:circle}.markdown-preview ul ul ul{list-style:square}.markdown-preview ol{list-style:decimal}.markdown-preview ol ol,.markdown-preview ul ol{list-style-type:lower-roman}.markdown-preview ol ol ol,.markdown-preview ol ul ol,.markdown-preview ul ol ol,.markdown-preview ul ul ol{list-style-type:lower-alpha}.markdown-preview .newpage,.markdown-preview .pagebreak{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center!important}.markdown-preview:not([data-for=preview]) .code-chunk .code-chunk-btn-group{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .status{display:none}.markdown-preview:not([data-for=preview]) .code-chunk .output-div{margin-bottom:16px}.markdown-preview .md-toc{padding:0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link div,.markdown-preview .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}.markdown-preview .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0;min-height:100vh}@media screen and (min-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode]) .markdown-preview{font-size:14px!important;padding:1em}}@media print{html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for=html-export]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,.66);border:4px solid rgba(150,150,150,.66);background-clip:content-box}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc{padding:0 16px}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link{display:inline;padding:.25rem 0}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link div,html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper .md-toc-link p{display:inline}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc .md-toc .md-toc-link-wrapper.highlighted .md-toc-link{font-weight:800}html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% - 300px);padding:2em calc(50% - 457px - 300px / 2);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for=html-export]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for=html-export]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
/* Please visit the URL below for more information: */
/*   https://shd101wyy.github.io/markdown-preview-enhanced/#/customize-css */
/* 侧边栏目录容器 */
.md-sidebar-toc.md-sidebar-toc {
  background: linear-gradient(145deg, #f8f9fa 0%, #e9ecef 100%) !important;
  border-left: 3px solid #2c3e50 !important;
  padding: 20px 25px !important;
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1) !important;
  width: 300px !important;
  /* 控制目录宽度 */
}
/* 目录标题 */
.md-sidebar-toc::before {
  content: "导航目录";
  display: block;
  font-family: "Microsoft YaHei", sans-serif;
  font-size: 1.4em;
  color: #2c3e50;
  padding-bottom: 12px;
  border-bottom: 2px dashed #adb5bd;
  margin-bottom: 15px;
}
/* 目录项层级缩进 */
.md-sidebar-toc {
  margin: 8px 0;
  transition: transform 0.2s ease;
}
/* 链接样式 */
.md-sidebar-toc a {
  color: #4a5568 !important;
  text-decoration: none !important;
  font-size: 15px;
  display: inline-block !important;
  padding: 4px 8px !important;
  border-radius: 4px;
}
.md-sidebar-toc a:hover {
  background: rgba(44, 62, 80, 0.1) !important;
  transform: translateX(5px);
}

      </style>
      <!-- The content below will be included at the end of the <head> element. --><script type="text/javascript">
  document.addEventListener("DOMContentLoaded", function () {
    // your code here
  });
</script></head><body for="html-export">
    
    
      <div class="crossnote markdown-preview  ">
      
<style>
    .markdown-preview pre>code, .markdown-preview pre[class*=language] {
    	white-space: pre-wrap;
    }
</style>
<h1 id="dm安装">DM安装 </h1>
<h2 id="环境检查及修改">环境检查及修改 </h2>
<p>默认情况下使用sudo用户，或者root用户执行</p>
<ul>
<li>操作系统时间检查</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>yum <span class="token function">install</span> chrony

<span class="token function">vim</span> /etc/chrony.conf
<span class="token comment"># 添加以下内容，删除原本sever</span>
server <span class="token number">10.51</span>.63.110 iburst
server <span class="token number">10.51</span>.134.100 iburst

<span class="token function">sudo</span> systemctl restart chronyd
<span class="token function">sudo</span> systemctl status chronyd

chronyc sources <span class="token parameter variable">-v</span>
</code></pre><ul>
<li>关闭防火墙、SELinux，重启服务器生效</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>systemctl stop firewalld
systemctl disable firewalld

<span class="token function">vim</span> /etc/selinux/config
<span class="token comment"># 永久关闭selinux</span>
<span class="token assign-left variable">SELINUX</span><span class="token operator">=</span>disabled

<span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s/SELINUX=enforcing/SELINUX=disabled/g'</span> /etc/selinux/config
</code></pre><ul>
<li>查看磁盘挂载，检查调度算法</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">cat</span> /etc/fstab

/dev/mapper/rhel-root   /                       xfs     defaults        <span class="token number">0</span> <span class="token number">0</span>
<span class="token assign-left variable">UUID</span><span class="token operator">=</span>92864eb9-b5f1-4121-accb-5602f8ace2af /boot                   xfs     defaults        <span class="token number">0</span> <span class="token number">0</span>
/dev/mapper/rhel-dmdata  /dmdata                xfs     defaults        <span class="token number">0</span> <span class="token number">0</span>
/dev/mapper/rhel-dmbak   /dmbak                 xfs     defaults        <span class="token number">0</span> <span class="token number">0</span>
/dev/mapper/rhel-dmarch  /dmarch                xfs     defaults        <span class="token number">0</span> <span class="token number">0</span>  


lsblk

NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             <span class="token number">8</span>:0    <span class="token number">0</span>  100G  <span class="token number">0</span> disk 
├─sda1          <span class="token number">8</span>:1    <span class="token number">0</span>    1G  <span class="token number">0</span> part /boot
└─sda2          <span class="token number">8</span>:2    <span class="token number">0</span>   99G  <span class="token number">0</span> part 
  └─rhel-root <span class="token number">253</span>:0    <span class="token number">0</span>   99G  <span class="token number">0</span> lvm  /
sdb             <span class="token number">8</span>:16   <span class="token number">0</span>  100G  <span class="token number">0</span> disk 
└─rhel-dmdata <span class="token number">253</span>:1    <span class="token number">0</span>  200G  <span class="token number">0</span> lvm  /dmdata
sdc             <span class="token number">8</span>:32   <span class="token number">0</span>  200G  <span class="token number">0</span> disk 
└─rhel-dmbak  <span class="token number">253</span>:2    <span class="token number">0</span>  200G  <span class="token number">0</span> lvm  /dmbak
sdd             <span class="token number">8</span>:48   <span class="token number">0</span>   50G  <span class="token number">0</span> disk 
└─rhel-dmarch <span class="token number">253</span>:3    <span class="token number">0</span>   50G  <span class="token number">0</span> lvm  /dmarch
sde             <span class="token number">8</span>:64   <span class="token number">0</span>  100G  <span class="token number">0</span> disk 
└─rhel-dmdata <span class="token number">253</span>:1    <span class="token number">0</span>  200G  <span class="token number">0</span> lvm  /dmdata
sr0            <span class="token number">11</span>:0    <span class="token number">1</span> 1024M  <span class="token number">0</span> rom  
loop0           <span class="token number">7</span>:0    <span class="token number">0</span>    1G  <span class="token number">0</span> loop /dm

<span class="token comment"># 通过 lsblk 命令找到数据盘对应的物理盘，并检查调度算法是否为deadline</span>
<span class="token function">cat</span> /sys/block/sdb/queue/scheduler

noop <span class="token punctuation">[</span>deadline<span class="token punctuation">]</span> cfq
</code></pre><ul>
<li>关闭numa以及禁用透明大页</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vi</span> /etc/default/grub
<span class="token comment"># GRUB_CMDLINE_LINUX值后添加以下内容</span>
<span class="token assign-left variable">transparent_hugepage</span><span class="token operator">=</span>never <span class="token assign-left variable">numa</span><span class="token operator">=</span>off

<span class="token comment"># 重新生成配置文件</span>
grub2-mkconfig <span class="token parameter variable">-o</span> /etc/grub2.cfg
</code></pre><ul>
<li>调整sysctl.conf参数（修改内存分配策略）</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vim</span> /etc/sysctl.conf
<span class="token assign-left variable">vm.overcommit_memory</span><span class="token operator">=</span><span class="token number">0</span>
<span class="token comment"># 使配置生效</span>
<span class="token function">sysctl</span> <span class="token parameter variable">-p</span>
</code></pre><ul>
<li>修改Linux系统资源限制</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vim</span> /etc/security/limits.conf

* soft nproc <span class="token number">10240</span>
* hard nproc <span class="token number">10240</span>
dmdba soft nproc <span class="token number">10240</span>
dmdba hard nproc <span class="token number">10240</span>
dmdba soft nofile <span class="token number">65536</span>
dmdba hard nofile <span class="token number">65536</span>
dmdba hard data unlimited
dmdba soft data unlimited
dmdba hard fsize unlimited
dmdba soft fsize unlimited
dmdba soft core unlimited
dmdba hard core unlimited
</code></pre><ul>
<li>调整用户进程数限制</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vim</span> /etc/security/limits.d/20-nproc.conf
dmdba soft nproc <span class="token number">65536</span>
dmdba hard nproc <span class="token number">65536</span>
</code></pre><blockquote>
<p>以上两项配置新版与旧版本有出入，红帽8以及麒麟没有20-nproc.conf文件</p>
</blockquote>
<ul>
<li>调整system.conf参数</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vim</span> /etc/systemd/system.conf
<span class="token assign-left variable">DefaultLimitNOFILE</span><span class="token operator">=</span><span class="token number">65536</span>
<span class="token assign-left variable">DefaultLimitNPROC</span><span class="token operator">=</span><span class="token number">10240</span>
</code></pre><blockquote>
<p>到此，重启Linux服务器<code>reboot</code></p>
</blockquote>
<ul>
<li>创建dmdba用户</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">groupadd</span> dinstall <span class="token parameter variable">-g</span> <span class="token number">2001</span>
<span class="token function">useradd</span> <span class="token parameter variable">-g</span> dinstall dmdba <span class="token parameter variable">-u</span> <span class="token number">1001</span>
<span class="token function">passwd</span> dmdba
<span class="token comment"># 数据库用户SSH 16位大小写字母数字及其他字符</span>
</code></pre><ul>
<li>创建DM数据库安装目录</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token builtin class-name">cd</span> /opt/
<span class="token function">mkdir</span> dmdbms dmsetup
<span class="token function">sudo</span> <span class="token function">chown</span> dmdba.dinstall <span class="token parameter variable">-R</span> dm*
</code></pre><ul>
<li><strong>切换到dmdba用户</strong>，修改对应用户环境变量设置</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vim</span> .bashrc
<span class="token assign-left variable"><span class="token environment constant">PS1</span></span><span class="token operator">=</span><span class="token string">'\[\e[35;40;1m\][\u@\h \W]\$\[\e[0m\] '</span>

<span class="token builtin class-name">source</span> .bashrc


<span class="token function">vim</span> .bash_profile
<span class="token builtin class-name">export</span> <span class="token assign-left variable">LD_LIBRARY_PATH</span><span class="token operator">=</span><span class="token string">"<span class="token variable">$LD_LIBRARY_PATH</span>:/opt/dmdbms/bin"</span>
<span class="token builtin class-name">export</span> <span class="token assign-left variable">DM_HOME</span><span class="token operator">=</span><span class="token string">"/opt/dmdbms"</span>
<span class="token builtin class-name">export</span> <span class="token assign-left variable"><span class="token environment constant">PATH</span></span><span class="token operator">=</span><span class="token environment constant">$PATH</span><span class="token builtin class-name">:</span><span class="token variable">$DM_HOME</span>/bin:<span class="token variable">$DM_HOME</span>/tool

<span class="token builtin class-name">source</span> .bash_profile
</code></pre><ul>
<li>调整/etc/pam.d/login（此时已经切换到ROOT用户）</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">vi</span> /etc/pam.d/login

session required /lib64/security/pam_limits.so
session required pam_limits.so
</code></pre><h2 id="安装部署达梦">安装部署达梦 </h2>
<ul>
<li>上传ISO镜像文件到<code>/opt/dmsetup/</code>目录下（root用户）</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">su</span> - root
<span class="token function">sudo</span> <span class="token function">mkdir</span> /dm
<span class="token function">mount</span> <span class="token parameter variable">-o</span> loop /opt/dmsetup/dm8_20240410_x86_rh6_64.iso /dm
</code></pre><ul>
<li>在终端进入到安装程序所在文件夹，执行安装命令（dmdba用户）</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">su</span> - dmdba
<span class="token builtin class-name">cd</span> /dm
./DMInstall.bin <span class="token parameter variable">-i</span>

<span class="token comment"># 安装过程中选择典型安装，并且安装目录选择/opt/dmdbms</span>
<span class="token comment"># /opt/dmsetup/dm1301128247.key</span>
</code></pre><ul>
<li>当安装完成，切换root用户执行提示脚本</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">su</span> - root
/opt/dmdbms/script/root/root_installer.sh

<span class="token comment">#移动 /opt/dmdbms/bin/dm_svc.conf 到/etc 目录</span>
<span class="token comment">#达梦数据库单机安装部署</span>
<span class="token comment">#修改服务器权限</span>
<span class="token comment">#创建 DmAPService 服务</span>
<span class="token comment">#Created symlink from /etc/systemd/system/multiuser.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service</span>
<span class="token comment">#创建服务(DmAPService)完成</span>
<span class="token comment">#启动 DmAPService 服务</span>
</code></pre><h2 id="初始化数据库实例">初始化数据库实例 </h2>
<ul>
<li>初始化过程（dmdba用户）</li>
</ul>
<p>页大小（PAGE_SIZE）：32</p>
<p>日志大小（LOG_SIZE）：2048</p>
<p>大小写（CASE_SENSITIVE）[Y:敏感 / N:不敏感]：敏感</p>
<p>字符集（CHARSET）[0:GB18030 / 1:UTF-8]：GB18030</p>
<p>其它参数默认，如需更改其它参数，请参考《<a href="https://eco.dameng.com/document/dm/zh-cn/pm/dminit-parameters.html">dminit 使用手册</a>》</p>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">su</span> - dmdba
<span class="token builtin class-name">cd</span> <span class="token variable">$DM_HOME</span>/bin/ <span class="token operator">&amp;&amp;</span> ./dminit <span class="token assign-left variable">db_name</span><span class="token operator">=</span>uatcrm <span class="token assign-left variable">instance_NAME</span><span class="token operator">=</span>uatcrm <span class="token assign-left variable">path</span><span class="token operator">=</span>/dmdata  <span class="token assign-left variable">port_num</span><span class="token operator">=</span><span class="token number">5236</span> <span class="token assign-left variable">PAGE_SIZE</span><span class="token operator">=</span><span class="token number">32</span> <span class="token assign-left variable">LOG_SIZE</span><span class="token operator">=</span><span class="token number">2048</span> <span class="token assign-left variable">CHARSET</span><span class="token operator">=</span><span class="token number">0</span>  <span class="token assign-left variable">case_sensitive</span><span class="token operator">=</span><span class="token number">1</span> <span class="token assign-left variable">LENGTH_IN_CHAR</span><span class="token operator">=</span><span class="token number">1</span> 
</code></pre><pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token builtin class-name">cd</span> <span class="token variable">$DM_HOME</span>/bin/ <span class="token operator">&amp;&amp;</span> ./dminit <span class="token assign-left variable">db_name</span><span class="token operator">=</span>DAMENG <span class="token assign-left variable">instance_NAME</span><span class="token operator">=</span>DAMENG <span class="token assign-left variable">path</span><span class="token operator">=</span>/dmdata <span class="token assign-left variable">SYSDBA_PWD</span><span class="token operator">=</span>AbcDefg123 <span class="token assign-left variable">SYSAUDITOR_PWD</span><span class="token operator">=</span>AbcDefg123

/opt/dmdbms/bin/dmserver /dmdata/DAMENG/dm.ini
</code></pre><ul>
<li>创建实例服务（root用户）</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">su</span> - root
/opt/dmdbms/script/root/dm_service_installer.sh <span class="token parameter variable">-t</span> dmserver <span class="token parameter variable">-dm_ini</span> /dmdata/uatcrm/dm.ini <span class="token parameter variable">-p</span> uatcrm

<span class="token comment"># 此命令创建的dm服务名为DmServiceuatcrm</span>
</code></pre><ul>
<li>启动实例（root用户）</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>systemctl start DmServiceuatcrm
</code></pre><h1 id="dm卸载">DM卸载 </h1>
<h2 id="卸载dm数据库">卸载DM数据库 </h2>
<p>用户在 DM 安装目录下，找到卸载程序<code>uninstall.sh</code>来执行卸载。用户执行以下命令启动图形化卸载程序</p>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>./uninstall.sh <span class="token parameter variable">-i</span>
</code></pre><p>运行结束后会有残留目录和文件，直接删除即可</p>
<h2 id="卸载dm实例">卸载DM实例 </h2>
<ul>
<li>查询达梦数据库实例服务</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>systemctl <span class="token parameter variable">-l</span> <span class="token operator">|</span> <span class="token function">grep</span> Dm
</code></pre><ul>
<li>根据实例服务名删除数据库实例</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>./script/root/dm_service_uninstaller.sh <span class="token parameter variable">-n</span> xxx
</code></pre><ul>
<li>删除数据库实例目录</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">rm</span> <span class="token parameter variable">-rf</span> xxx
</code></pre><h1 id="dm路径修改">DM路径修改 </h1>
<blockquote>
<p>切换到<code>dmdba</code>用户</p>
</blockquote>
<h2 id="前置准备">前置准备 </h2>
<ul>
<li>停止集群或单实例</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token comment"># 停止确认监视器</span>
systemctl stop DmMonitorServicePRDFA

<span class="token comment"># 停止备库守护进程</span>
systemctl stop DmWatcherServicePRDFA

<span class="token comment"># 停止主库守护进程</span>
systemctl stop DmWatcherServicePRDFA

<span class="token comment"># 关闭主库</span>
systemctl stop DmServicePRDFA01

<span class="token comment"># 关闭备库</span>
systemctl stop DmServicePRDFA02
</code></pre><ul>
<li>拷贝源文件</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">cp</span> <span class="token parameter variable">-pr</span> /opt/dm8/bin /opt/dmdbms/
</code></pre><ul>
<li>备份<code>dm.ctl</code>文件</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">cp</span> <span class="token parameter variable">-pr</span> dm.ctl ./ctl_bak/dm.ctl_20250428
</code></pre><h2 id="单机">单机 </h2>
<ul>
<li>转换<code>dm.ctl</code>为<code>dmctl.txt</code></li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>/opt/dmdbms/bin/dmctlcvt <span class="token assign-left variable">TYPE</span><span class="token operator">=</span><span class="token number">1</span> <span class="token assign-left variable">SRC</span><span class="token operator">=</span>/dmdata/UATTAA/dm.ctl <span class="token assign-left variable">DEST</span><span class="token operator">=</span>/dmdata/UATTAA/dmctl.txt
</code></pre><ul>
<li>修改<code>dmctl.txt</code>中所有涉及的文件路径</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s#/dmdata/UATTA#/dmdata/UATTAA#g'</span> dmctl.txt
<span class="token function">grep</span> <span class="token string">"/dmdata/UATTA"</span> dmctl.txt <span class="token parameter variable">-n</span>
</code></pre><ul>
<li>转换<code>dmctl.txt</code>为<code>dm.ctl</code></li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code>/opt/dmdbms/bin/dmctlcvt <span class="token assign-left variable">TYPE</span><span class="token operator">=</span><span class="token number">2</span> <span class="token assign-left variable">SRC</span><span class="token operator">=</span>/dmdata/UATTAA/dmctl.txt <span class="token assign-left variable">DEST</span><span class="token operator">=</span>/dmdata/UATTAA/dm.ctl
</code></pre><ul>
<li>修改<code>dm.ini</code>文件</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s#/dmdata/UATTA#/dmdata/UATTAA#g'</span> dm.ini
<span class="token function">grep</span> <span class="token string">"/dmdata/UATTA"</span> dm.ini <span class="token parameter variable">-n</span> 
</code></pre><ul>
<li>修改守护进程文件<code>DmServicePRDFA01</code></li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s#/dmdata/UATTA#/dmdata/UATTAA#g'</span> /opt/dmdbms/bin/DmServiceUATTA
<span class="token function">grep</span> <span class="token string">"/dmdata/UATTA"</span> /opt/dmdbms/bin/DmServiceUATTA <span class="token parameter variable">-n</span>
</code></pre><h2 id="dw集群">DW集群 </h2>
<ul>
<li>修改<code>dmarch.ini</code></li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s#/dmarch/PRDFA#/xxx/PRDFA#g'</span> dmarch.ini
<span class="token function">grep</span> <span class="token string">"/dmarch/PRDFA"</span> dmarch.ini <span class="token parameter variable">-n</span>
</code></pre><ul>
<li>修改<code>dmmal.ini</code></li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s#/dmarch/PRDFA#/xxx/PRDFA#g'</span> dmarch.ini
<span class="token function">grep</span> <span class="token string">"/dmarch/PRDFA"</span> dmmal.ini <span class="token parameter variable">-n</span>
</code></pre><ul>
<li>
<p>修改<code>dmwatcher.ini</code></p>
</li>
<li>
<p>修改<code>DmWatcherServicePRDFA</code></p>
</li>
</ul>
<h1 id="dm许可证替换">DM许可证替换 </h1>
<ul>
<li>使用DM管理工具或disql登录进行查询当前数据库的授权信息</li>
</ul>
<pre data-role="codeBlock" data-info="sql" class="language-sql sql"><code><span class="token keyword keyword-SELECT">SELECT</span> SERVER_SERIES<span class="token punctuation">,</span> SERVER_TYPE<span class="token punctuation">,</span> EXPIRED_DATE<span class="token punctuation">,</span> AUTHORIZED_CUSTOMER<span class="token punctuation">,</span> SERIES_NO <span class="token keyword keyword-FROM">FROM</span> V$LICENSE<span class="token punctuation">;</span>

<span class="token comment"># SERVER_SERIES：服务器颁布类型。P个人版、S标准版、E企业版</span>
<span class="token comment"># SERVER_TYPE：服务器发布类型。1正式版、2测试版、3试用版</span>
<span class="token comment"># EXPIRED_DATE：有效日期。无限期值为空</span>
<span class="token comment"># AUTHORIZED_CUSTOMER：用户名称</span>
<span class="token comment"># SERIES_NO：序列号</span>
</code></pre><ul>
<li>重命名授权文件为<code>dm.key</code>，修改所属、赋权</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">mv</span> dmEE01148875.key dm.key
<span class="token function">chown</span> dmdba.dinstall dm.key
<span class="token function">chmod</span> +x dm.key
</code></pre><ul>
<li>备份原文件</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">mv</span> /opt/dmdbms/bin/dm.key /opt/dmdbms/bin/dm.key.bak
</code></pre><ul>
<li>移动新许可证到<code>bin</code>目录</li>
</ul>
<pre data-role="codeBlock" data-info="bash" class="language-bash bash"><code><span class="token function">mv</span> dm.key /opt/dmdbms/bin
</code></pre><ul>
<li>加载许可证文件（DM管理工具或disql）</li>
</ul>
<pre data-role="codeBlock" data-info="sql" class="language-sql sql"><code>SP_LOAD_LIC_INFO<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre><ul>
<li>重新验证授权信息（DM管理工具或disql）</li>
</ul>
<pre data-role="codeBlock" data-info="sql" class="language-sql sql"><code><span class="token keyword keyword-SELECT">SELECT</span> SERVER_SERIES<span class="token punctuation">,</span> SERVER_TYPE<span class="token punctuation">,</span> EXPIRED_DATE<span class="token punctuation">,</span> AUTHORIZED_CUSTOMER<span class="token punctuation">,</span> SERIES_NO <span class="token keyword keyword-FROM">FROM</span> V$LICENSE<span class="token punctuation">;</span>
</code></pre>
      </div>
      <div class="md-sidebar-toc">
<div class="md-toc">
<details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#dm安装" class="md-toc-link"><p>DM安装</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#环境检查及修改" class="md-toc-link">
            <p>环境检查及修改</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#安装部署达梦" class="md-toc-link">
            <p>安装部署达梦</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#初始化数据库实例" class="md-toc-link">
            <p>初始化数据库实例</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#dm卸载" class="md-toc-link"><p>DM卸载</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#卸载dm数据库" class="md-toc-link">
            <p>卸载DM数据库</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#卸载dm实例" class="md-toc-link">
            <p>卸载DM实例</p>

          </a></div>
        </div>
      </details>
    <details style="padding:0;;padding-left:0px;" open="">
        <summary class="md-toc-link-wrapper">
          <a href="#dm路径修改" class="md-toc-link"><p>DM路径修改</p>
</a>
          </summary>
        <div>
          <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#前置准备" class="md-toc-link">
            <p>前置准备</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#单机" class="md-toc-link">
            <p>单机</p>

          </a></div><div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:42px">
          <a href="#dw集群" class="md-toc-link">
            <p>DW集群</p>

          </a></div>
        </div>
      </details>
    <div class="md-toc-link-wrapper" style="padding:0;;display:list-item;list-style:square;margin-left:18px">
          <a href="#dm许可证替换" class="md-toc-link">
            <p>DM许可证替换</p>

          </a></div>
</div>
</div>
      <a id="sidebar-toc-btn">≡</a>
    
    
    
    
    
    
<script>

var sidebarTOCBtn = document.getElementById('sidebar-toc-btn')
sidebarTOCBtn.addEventListener('click', function(event) {
  event.stopPropagation()
  if (document.body.hasAttribute('html-show-sidebar-toc')) {
    document.body.removeAttribute('html-show-sidebar-toc')
  } else {
    document.body.setAttribute('html-show-sidebar-toc', true)
  }
})
</script>
      
  
    </body></html>